Advances in computer technology (e.g., microprocessor speed, memory capacity, data transfer bandwidth, software functionality, and the like) have generally contributed to increased computer application in various industries. Ever more powerful server systems, which are often configured as an array of servers, are commonly provided to service requests originating from external sources such as the World Wide Web, for example.
As the amount of available electronic data grows, it becomes more important to store such data in a manageable manner that facilitates user friendly and quick data searches and retrieval. Today, a common approach is to store electronic data in one or more databases. In general, a typical database can be referred to as an organized collection of information with data structured such that a computer program can quickly search and select desired pieces of data, for example. Traditionally, data within a database is organized via one or more tables, wherein respective tables comprise a set of records and a record includes a set of fields. Records are commonly indexed as rows within a table and the record fields are typically indexed as columns such that a row/column pair of indices can reference a particular datum within a table.
Currently, a vast majority of the world's databases are based on a relational data-model and access is most often dominated by variants of the SQL (structured query language) standard. SQL is a language that can be used to interrogate and process data in a relational database and, many corporations maintain organizational, product and customer data in SQL compatible databases—Originally developed for use in connection with mainframes, most database management systems (DBMSs) are now typically designed for client/server environments that support SQL.
The main application of a database management system is of course to manage storage, arrangement, and retrieval of data; however, in order to provide a variety of capabilities to the management system it is often desirable to employ stored procedures or predefined functions upon which the database management system can use to accomplish functions provided thereby. Database administrators frequently employ “stored procedures” that are built-in queries where only small parts (e.g., parameters) are changeable, to accommodate query searches. For example, a stored procedure can be defined to identify customers having a place of business in a particular zip code. Accordingly, the user would only have to input the value of the zip code in order to obtain query result(s). In other words, a user would call into the stored procedure and pass along a desired zip code as an identified parameter. Typically, there are a number of benefits in using stored procedures, including function encapsulation, performance enhancement, client-server processing, and security. Generally, stored procedures may take any number of parameters, which are defined internally within such procedures. Stored procedures may also be used to add, update, or remove information from one or more databases.
Also, during development of a database application, a developer will typically create stored procedures in a database, and then code up a data access layer component for a middle tier of the application—this can be employed to invoke the stored procedures and gather up any results that can then be passed on to the caller in a higher layer of the middle tier. The process of creating such data access layer involves duplicating various information in code, which is already present in the database. Yet, typically such an approach is inefficient and redundant, as errors can be introduced and maintenance problems can arise during duplication.
In addition, the application will not properly operate, if changes to the stored procedures are not accompanied by similar changes to the data access layer. Moreover, determining exactly what has changed in the stored procedures and updating the data access layer code is both tedious and error-prone.
Therefore, there is a need to overcome the aforementioned exemplary deficiencies associated with conventional systems and devices.